/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-05-03
 * Time: 10:20
 */
public class Solution {
    public int rectCover(int target) {
        if(target == 0){
            return 0;
        }
        // dp[i] , 表示 覆盖 2 * i 的总的方法数
        int[] dp = new int[target + 1];
        dp[0] = 1;
        dp[1] = 1;
//         总共有两种放置方法
//         dp[i-1] 表示最后一个竖着放, 最后一个竖着放, 放置方法就确定了, 方法数就与 dp[i-1]相同
//         dp[i-2] 表示最后两个横着放, 最后两个横着放, 放置方法也就确定了, 方法数就与 dp[i-2]相同
        for (int i = 2;i <= target; i++){
            dp[i] = dp[i-2] + dp[i-1];
        }
        return dp[target];
    }
}
